The present invention relates to tone generators for use in electronic musical instruments and, more particularly, to a digital tone generator useful for simulating musical effects such as portamento, glissando and vibrato.
Portamento, glissando and vibrato are effects commonly used in accoustical and electronic musical instruments, all three effects involving the feature of changing the pitch of a note being sounded. The portamento effect, for example, comprehends the production of a continuous change of pitch over a musical interval extending between two selected notes. The effect of glissando is similar in nature but the change in pitch normally extends for a fixed musical interval from a selected note. Vibrato, on the other hand, results from cyclically increasing and decreasing the pitch of a selected note by a given deviation about the selected note.
Due to the interval nature of the musical scale, and the auditory perception thereof, the foregoing musical effects are characterized in that corresponding musical intervals are ideally swept in equal time intervals. Consider, for example, producing a portamento effect between two notes f.sub.1 and 2f.sub.1 defining the lower and upper boundaries of a particular octave. At a given sweep rate, it will take a time interval .DELTA.t to sweep the frequency band between the two notes. Now, consider producing a portamento effect between two notes 2f.sub.1 and 4f.sub.1 defining the lower and upper boundaries of the next higher octave. It will be appreciated that if this octave were linearly swept at the same rate as the lower octave, the resulting time interval will be greater than .DELTA.t due to the fact that the higher octave defines an increased range of frequencies as compared to the lower octave. The same phenomenon occurs when considering glissando and vibrato effects. That is, unless suitable precautions are taken, the production of these musical effects over corresponding musical intervals in different portions of the musical scale will not be performed in equal time intervals.
Conventionally, electronic musical instrument tone generators have been analog in nature wherein the musical tone signals are generated by applying suitable control voltages to a voltage controlled oscillator (VCO). The VCO is commonly characterized by an exponential response and operated in response to a linear control voltage. Alternatively, the linear control voltage may be coupled through an exponential conversion circuit to a VCO having a linear response. In either case, the effect is the same; namely, a true reproduction of the musical scale in response to a linear control voltage. That is, identical incremental control voltage changes in different portions of the musical scale will cause the VCO to produce different tone signal frequency deviations defining corresponding musical intervals. To illustrate the foregoing, FIG. 1 shows an exemplary transfer function of an exponential VCO. It will be observed that sweeping the control voltage from 1 volt to 2 volts produces a frequency sweep from f.sub.1 to 2f.sub.1 defining a particular octave. Similarly, sweeping the control voltage from 3 volts to 4 volts, i.e. the same incremental control voltage change as before, produces a frequency sweep from 4f.sub.1 to 8f.sub.1 which defines a higher octave. Although, in terms of frequency, the band swept is four times larger it nevertheless occupies a single octave as did the control voltage sweep from 1 to 2 volts. Of course, the same principal applies to control voltage increments defining musical intervals less or more than one octave.
The prior art exponential tone generator graphically represented in FIG. 1 inherently produces proper portamento and glissando effects when the control voltage is suitably modulated. For example, sweeping the control voltage at a constant rate between 1-2 volts and 3-4 volts produces continuous frequency changes in equal time intervals for corresponding musical intervals, in this case octaves.
The prior art VCO type vibrato tone generator has typically been operated in the exponential mode although, recently, linear mode operation has also been utilized to achieve more symmetrical results. Assume a vibrato effect is desired having a center frequency of 1.0f.sub.1 and a depth of 1.1. The control voltage would be suitably modulated for causing the output frequency to cyclically sweep at a constant rate between 0.9f.sub.1 and 1.1f.sub.1. Thus, the total frequency deviation of 0.2f.sub.1 would be swept in some given time interval. Now, assume that a vibrato effect is desired about a center frequency two octaves about 1.0f.sub.1, i.e. 4f.sub.1, but having the same vibrato depth. The control voltage would now be modulated for causing the output frequency to cyclically sweep at a constant rate between 3.6f.sub.1 and 4.4f.sub.1 resulting in a total frequency deviation of 0.8f.sub.1. However, even though the latter frequency deviation is, in terms of frequency, four times that produced in the former octave, the musical intervals are corresponding and are therefore swept in equal time intervals since equivalent control voltage increments produce the two different deviations.
Digital tone generatores are, to a large extent, presently replacing the prior art analog systems. Such digital generators frequently utilize suitably controlled programmable frequency dividers to produce the requisite tone signals. To this end, a high frequency clock signal is typically applied to the clock input of the divider which is set by an appropriate program code for dividing the clock signal by a particular divisor to achieve a tone signal having a desired frequency. Portamento, glissando or vibrato may then be achieved by suitably varying or modulating the program code supplied to the divider such that the desired frequency change is exhibited by the output tone signal. Thus, a digital system of this type for producing the musical effects or portamento, glissando and vibrato must necessarily comprehend means for producing a program code for appropriately controlling the divider.
One possible technique for producing the requisite program code involves means for sequentially increasing or decreasing the program code supplied to the divider by means of a counter or the like. The increasing or decreasing program code would cause the divisor of the divider to sequentially change in a like manner and at a constant rate whereby a tone signal is produced whose frequency also changes at a constant rate. However, the time intervals during which frequency changes occur over corresponding musical intervals would not be constant but rather would depend upon the location within the musical scale at which the change is being effected. Consider, for example, the production of portamento effects between the notes corresponding to f.sub.1 and 2f.sub.1 and the notes corresponding to 4f.sub.1 and 8f.sub.1. In this example, the program code supplied to the divider must be sequenced through one fourth times as many state changes or steps to sweep the latter octave, which in terms of frequency corresponds to a band of 4f.sub.1, as compared to the former which only occupies a frequency range of f.sub.1. As a consequence, the octave between 4f.sub.1 and 8f.sub.1 will be swept in a time interval four times less than that required to sweep the octave between f.sub.1 and 2f.sub.1. As mentioned previously, from a musical viewpoint, the effects of portamento, glissando and vibrato are not properly produced when corresponding musical intervals are swept in unequal time intervals. Accordingly, a digital scheme implemented by a counter which is sequentially stepped at a constant rate for controlling a programmable divider would not properly simulate the musical effects of portamento, glissando and vibrato.
In addition, known digital tone generators lack the capability for providing certian frequently desired features characterizing the production of vibrato effects. In particular, they lack the ability to maintain the vibrato depth constant for different selected center frequencies as well as the ability to perform complete vibrato cycles about a selected center frequency in equal time intervals regardless of the vibrato depth.